package com.renjun.smweb.service.AdmissionService.impl;

import com.renjun.smweb.commons.componet.FileIOComponent;
import com.renjun.smweb.commons.global.FileInfoPo;
import com.renjun.smweb.commons.global.StaticCaches;
import com.renjun.smweb.exceptions.FileTypeNotFoundException;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import com.renjun.smweb.commons.componet.FileIOComponent;
import com.renjun.smweb.commons.global.FileInfoPo;
import com.renjun.smweb.exceptions.FileTypeNotFoundException;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * Created by huamin on 2017/3/13.
 */
public class ExpluquNotice {

    private static final String fontType = "simsun.ttc,0";  //字体类型

    private static final String fontPath = StaticCaches.getRealRootPath() + File.separator + "pdf_res" + File.separator + "fonts" + File.separator + fontType;  //字体路径

    private static final String imagePath = StaticCaches.getRealRootPath() + File.separator + "pdf_res" + File.separator + "image" + File.separator + "gou1.jpg";//图片路径

    //初始化BaseFont对象
    private BaseFont baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    //字体大小
    private final Font font1 = new Font(baseFont, 15, Font.BOLD);    //标题字体
    private final Font font3 = new Font(baseFont, 8, Font.NORMAL);   //报名学校和年级信息
    private final Font font5 = new Font(baseFont, 10, Font.BOLD);    //监护人签名信息
    private final Font font6 = new Font(baseFont, 7, Font.BOLD);     //模块黑体字
    private final Font font7 = new Font(baseFont, 7, Font.NORMAL);   //模块内容字体
    private final Font font8 = new Font(baseFont, 14, Font.NORMAL);   //生成录取通知书

    private ExpluquNotice() throws IOException, DocumentException {
    }


    //供外部调用的方法
    public static String createExpluquNotice(List<Map<String, Object>> params,Map<String, Object> schoolInfo) throws DocumentException, FileTypeNotFoundException, IOException {
        ExpluquNotice g = new ExpluquNotice();
        return g.expluquNotice(params,schoolInfo);
    }

    /**
     * 生成单个录取通知书M7-5
     *
     * @param data List<Map>
     * @return 下载地址(相对路径)
     * @throws FileTypeNotFoundException
     * @throws IOException
     * @throws DocumentException
     * @author huamin
     */
    private String expluquNotice(List<Map<String, Object>> data,Map<String, Object> schoolInfo) throws FileTypeNotFoundException, IOException, DocumentException {
        //生成临时pdf文件，用以获取配置中的文件路径
        FileInfoPo fileInfoPo = FileIOComponent.createTempFilePathByType(FileIOComponent.EXPORT_TYPE, "pdf", "录取通知书");
        String tempPath = fileInfoPo.getFileAbsPath();
        //初始文件输出流
        FileOutputStream fos = new FileOutputStream(new File(tempPath));
        //初始化document对象
        Document document = new Document();
        //初始化pdfWriter对象
        PdfWriter pdfWriter = PdfWriter.getInstance(document, fos);
        //持久化pdfWriter对象
        pdfWriter.setCloseStream(false);
        //持久化document对象
        document.open();
        //往document对象添加数据
        addfoot(document, data,schoolInfo);
        //关流
        document.close();
        pdfWriter.flush();
        pdfWriter.close();
        fos.flush();
        fos.close();
        return fileInfoPo.getFileVirPath();
    }

    //添加页眉,页脚
    private void addfoot(Document document, List<Map<String, Object>> data,Map<String, Object> schoolInfo) throws IOException, DocumentException {
        //
//        Image image = Image.getInstance(imagePath);
//        image.scaleAbsolute(14, 16);//自定义大小
//        image.setAlignment(2);
        String schoolname= (String) schoolInfo.get("schoolname");
        String address= (String) schoolInfo.get("address");
        String schooltelephone= (String) schoolInfo.get("schooltelephone");
        for (int i=0;i<data.size();i++) {
            Map<String, Object> map=data.get(i);
            String xm= (String) map.get("xm");
            String text="\n" +
                    xm+"家长:\n" +
                    "\n" +
                    "您好！\n" +
                    "\n" +
                    "    "+schoolname+"已录取您的孩子。请您带您孩子于_____年__月__日到学校报到。\n" +
                    "    "+"学校地址："+address+"。\n" +
                    "    "+"联系电话："+schooltelephone+"。\n" +
                    "\n" +
                    "    "+"欢迎您孩子来园就读，预祝您孩子在我园健康快乐地成长！\n" +
                    "\n" +
                    "\n"+
                    "\n"+
                    "\n"+
                    "\n"+
                    "\n"+
                    "\n";

//            Paragraph par = new Paragraph("录取通知书\n\n", font1);
//            par.setAlignment(1);                                //0:左对齐,1:中间,2,右边
//            document.add(par);

            Paragraph par2 = new Paragraph(text, font8);
            par2.setAlignment(0);                                //0:左对齐,1:中间,2,右边
            document.add(par2);

//            Paragraph par3 = new Paragraph(rxnj + "\n", font3);
//            par3.setSpacingBefore(-12);
//            par3.setAlignment(2);                                //0:左对齐,1:中间,2,右边
//            document.add(par3);

            //添加表格
//            addTable(document, map);

//            Paragraph par5 = new Paragraph("上述信息经过监护人核实，确认无误，并愿意承担相关责任。 监护人签字:  ______________ 日期: _____________\n", font5);
//            par5.setAlignment(0);                                //0:左对齐,1:中间,2,右边
//            par5.setSpacingBefore(10);
//            document.add(par5);
            //换页
            if((i+1)%2==0) {
                document.newPage();
            }
        }
    }

    //添加表格
    private void addTable(Document document, Map<String, Object> params) throws DocumentException {
        String xm = (String) params.get("xm");          //姓名
        String csrq = (String) params.get("csrq");      //出生日期
        String xb = (String) params.get("xb");          //性别
        String xbPdf = "1".equals(xb) ? "*性别：  √男    □女" : "2".equals(xb) ? "*性别：  □男    √女" : "*性别：  □男    □女";
        String sfzjlx = (String) params.get("sfzjlx");  //身份证件类型


        //初始化表格1
        PdfPTable table = new PdfPTable(1);
        //设置表格宽度
        table.setWidthPercentage(100f);
        //段落前间距
        table.setSpacingBefore(5f);
        //设置每列的宽度
        table.setWidths(new float[]{100});
        //设置列的默认属性
        table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);

        PdfPCell baseTableCell = new PdfPCell(new Paragraph("(一)学生基本信息", font6));
        baseTableCell.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        baseTableCell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        baseTableCell.setPaddingLeft(5);
        baseTableCell.setBackgroundColor(BaseColor.GRAY);
        baseTableCell.setFixedHeight(22);
        table.addCell(baseTableCell);
        document.add(table);

        //第二行 第二个表格
        PdfPTable table2 = new PdfPTable(4);
        table2.setWidthPercentage(100f);
        table2.setWidths(new float[]{15, 30, 25, 30});

        PdfPCell baseTableCel2 = new PdfPCell(new Paragraph("*姓名（证件姓名）：", font7));
        baseTableCel2.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        baseTableCel2.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        baseTableCel2.setPaddingLeft(5);
        baseTableCel2.setFixedHeight(20);
        table2.addCell(baseTableCel2);

        PdfPCell baseTableCel3 = new PdfPCell(new Paragraph(xm, font7));
        baseTableCel3.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        baseTableCel3.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        baseTableCel3.setPaddingLeft(5);
        baseTableCel3.setFixedHeight(20);
        table2.addCell(baseTableCel3);

        PdfPCell baseTableCel4 = new PdfPCell(new Paragraph("*出生日期：" + csrq, font7));
        baseTableCel4.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        baseTableCel4.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        baseTableCel4.setPaddingLeft(2);
        baseTableCel4.setFixedHeight(20);
        table2.addCell(baseTableCel4);

        PdfPCell baseTableCel5 = new PdfPCell(new Paragraph(xbPdf, font7));     //性别
        baseTableCel5.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        baseTableCel5.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        baseTableCel5.setPaddingLeft(5);
        baseTableCel5.setFixedHeight(20);
        table2.addCell(baseTableCel5);

        document.add(table2);

        //第三行 第三个表格
        PdfPTable table3 = new PdfPTable(3);
        table3.setWidthPercentage(100f);
        table3.setWidths(new int[]{9, 61, 30});

        PdfPCell cell6 = new PdfPCell(new Paragraph("*证件类型：", font7));
        cell6.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell6.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell6.setPaddingLeft(5);
        cell6.setFixedHeight(25);
        table3.addCell(cell6);

        PdfPCell cell7 = new PdfPCell(new Paragraph(getZjlxPdf(sfzjlx), font7));
        cell7.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell7.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell7.setPaddingLeft(5);
        cell7.setFixedHeight(25);
        table3.addCell(cell7);

        PdfPCell cell8 = new PdfPCell(new Paragraph("*身份证件号码：\n 港澳通行证号码：", font7));
        cell8.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell8.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell8.setPaddingLeft(5);
        cell8.setFixedHeight(25);
        table3.addCell(cell8);

        document.add(table3);

        //第4行 第4个表格
        PdfPTable table4 = new PdfPTable(2);
        table4.setWidthPercentage(100f);
        table4.setWidths(new int[]{70, 30});

        PdfPCell cell9 = new PdfPCell(new Paragraph("上海居住证类型：   □上海市临时居住证       □上海市居住证     □上海市海外人才居住证     □其他", font7));
        cell9.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell9.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell9.setPaddingLeft(5);
        cell9.setFixedHeight(20);
        table4.addCell(cell9);

        PdfPCell cell10 = new PdfPCell(new Paragraph("居住证编号：", font7));
        cell10.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell10.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell10.setPaddingLeft(5);
        cell10.setFixedHeight(20);
        table4.addCell(cell10);

        document.add(table4);

        //第5行 第5个表格
        PdfPTable table5 = new PdfPTable(2);
        table5.setWidthPercentage(100f);
        table5.setWidths(new int[]{70, 30});

        PdfPCell cell11 = new PdfPCell(new Paragraph("*健康状况：  □良好   □一般     □有慢性病  □残疾", font7));
        cell11.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell11.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell11.setPaddingLeft(5);
        cell11.setFixedHeight(20);
        table5.addCell(cell11);

        PdfPCell cell12 = new PdfPCell(new Paragraph("*民族：", font7));
        cell12.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell12.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell12.setPaddingLeft(5);
        cell12.setFixedHeight(20);
        table5.addCell(cell12);

        document.add(table5);

        //第6行 第6个表格
        PdfPTable table6 = new PdfPTable(2);
        table6.setWidthPercentage(100f);
        table6.setWidths(new int[]{15, 85});

        PdfPCell cell13 = new PdfPCell(new Paragraph("*国籍/地区：", font7));
        cell13.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell13.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell13.setPaddingLeft(5);
        cell13.setFixedHeight(20);
        table6.addCell(cell13);

        PdfPCell cell14 = new PdfPCell(new Paragraph("*户口性质： □非农业家庭户口   □农业家庭户口   □非农业集体户口   □农业集体户口   □未落常住户口   □其他", font7));
        cell14.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell14.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell14.setPaddingLeft(5);
        cell14.setFixedHeight(20);
        table6.addCell(cell14);

        document.add(table6);

        //第7行 第7个表格
        PdfPTable table7 = new PdfPTable(3);
        table7.setWidthPercentage(100f);
        table7.setWidths(new int[]{20, 45, 35});

        PdfPCell cell15 = new PdfPCell(new Paragraph("*非农业户口类型：\n□城市  □县城  □乡镇", font7));
        cell15.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell15.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell15.setPaddingLeft(5);
        cell15.setFixedHeight(25);
        table7.addCell(cell15);

        PdfPCell cell16 = new PdfPCell(new Paragraph("*户籍类别：□常驻   □蓝印   □外省市   □港澳台侨\n            □外籍   □其他", font7));
        cell16.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell16.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell16.setPaddingLeft(5);
        cell16.setFixedHeight(25);
        table7.addCell(cell16);

        PdfPCell cell17 = new PdfPCell(new Paragraph("*是否人户一致：  □是      □否", font7));
        cell17.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell17.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell17.setPaddingLeft(5);
        cell17.setFixedHeight(25);
        table7.addCell(cell17);

        document.add(table7);

        //第8行 第8个表格
        PdfPTable table8 = new PdfPTable(1);
        table8.setWidthPercentage(100f);
        table8.setWidths(new float[]{100});

        PdfPCell cell18 = new PdfPCell(new Paragraph("*户口地所属居委/村：           省/市           市           区/县                      街道/镇                      居委会/村", font7));
        cell18.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell18.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell18.setPaddingLeft(5);
        cell18.setFixedHeight(20);
        table8.addCell(cell18);

        document.add(table8);


        //第9行 第9个表格
        PdfPTable table9 = new PdfPTable(2);
        table9.setWidthPercentage(100f);
        table9.setWidths(new int[]{60, 40});

        PdfPCell cell19 = new PdfPCell(new Paragraph("*户口详细地址：", font7));
        cell19.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell19.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell19.setPaddingLeft(5);
        cell19.setFixedHeight(20);
        table9.addCell(cell19);

        PdfPCell cell20 = new PdfPCell(new Paragraph("*户籍登记日：          年        月       日", font7));
        cell20.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell20.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell20.setPaddingLeft(5);
        cell20.setFixedHeight(20);
        table9.addCell(cell20);

        document.add(table9);


        //第10行 第10个表格
        PdfPTable table10 = new PdfPTable(1);
        table10.setWidthPercentage(100f);
        table10.setWidths(new float[]{100});

        PdfPCell cell21 = new PdfPCell(new Paragraph("*与户主关系：   □本人    □父/母     □祖父母/外祖父母       □兄弟姐妹   □其他亲属       □非亲属", font7));
        cell21.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell21.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell21.setPaddingLeft(5);
        cell21.setFixedHeight(20);
        table10.addCell(cell21);

        document.add(table10);

        //第11行 第11个表格  现住地详细地址
        PdfPTable table11 = new PdfPTable(3);
        table11.setWidthPercentage(100f);
        table11.setWidths(new int[]{50, 25, 25});

        PdfPCell cell122 = new PdfPCell(new Paragraph("*现住地详细地址：", font7));
        cell122.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell122.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell122.setPaddingLeft(5);
        cell122.setFixedHeight(25);
        table11.addCell(cell122);

        PdfPCell cell23 = new PdfPCell(new Paragraph("*现住地邮编：", font7));
        cell23.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell23.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell23.setPaddingLeft(5);
        cell23.setFixedHeight(25);
        table11.addCell(cell23);

        PdfPCell cell24 = new PdfPCell(new Paragraph("*联系电话：", font7));
        cell24.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell24.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cell24.setPaddingLeft(5);
        cell24.setFixedHeight(25);
        table11.addCell(cell24);

        document.add(table11);

        //第12行 第12个表格 现住地所属居委/村
        PdfPTable table12 = new PdfPTable(1);
        table12.setWidthPercentage(100f);
        table12.setWidths(new float[]{100});

        PdfPCell cell25 = new PdfPCell(new Paragraph("*现住地所属居委/村：            省/市            市            区/县                      街道/镇                      居委会/村", font7));
        cell25.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell25.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell25.setPaddingLeft(5);
        cell25.setFixedHeight(20);
        table12.addCell(cell25);

        document.add(table12);

        //第13行 第13个表格 住房性质
        PdfPTable table13 = new PdfPTable(1);
        table13.setWidthPercentage(100f);
        table13.setWidths(new float[]{100});

        PdfPCell cell26 = new PdfPCell(new Paragraph("*住房性质：   □产权房（产证编号：_____________________登记日期：              产权房地址：_______________________________）\n\n" +
                "              □公/廉租房         □集体宿舍         □租赁（合同编号：_________________起租日期：_________________）\n\n" +
                "              □其他：_____________________________ ", font7));
        cell26.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell26.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell26.setPaddingLeft(5);
        cell26.setFixedHeight(40);
        table13.addCell(cell26);

        document.add(table13);

        //第14行 第14个表格 与购房人或承租人关系
        PdfPTable table14 = new PdfPTable(1);
        table14.setWidthPercentage(100f);
        table14.setWidths(new float[]{100});

        PdfPCell cell27 = new PdfPCell(new Paragraph("与购房人或承租人关系:   □本人   □父/母      □祖父母/外祖父母       □兄弟姐妹       □其他亲属       □非亲属", font7));
        cell27.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell27.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell27.setPaddingLeft(5);
        cell27.setFixedHeight(20);
        table14.addCell(cell27);

        document.add(table14);

        //第15行 第15个表格 是否符合计划生育政策
        PdfPTable table15 = new PdfPTable(2);
        table15.setWidthPercentage(100f);
        table15.setWidths(new float[]{50, 50});

        PdfPCell cell28 = new PdfPCell(new Paragraph("*是否符合计划生育政策：  □是      □否", font7));
        cell28.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell28.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell28.setPaddingLeft(5);
        cell28.setFixedHeight(20);
        table15.addCell(cell28);

        PdfPCell cell29 = new PdfPCell(new Paragraph("*是否农民工同住子女：□是    □否", font7));
        cell29.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell29.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell29.setPaddingLeft(5);
        cell29.setFixedHeight(20);
        table15.addCell(cell29);

        document.add(table15);


        //第16行 第16个表格 与购房人或承租人关系
        PdfPTable table16 = new PdfPTable(1);
        table16.setWidthPercentage(100f);
        table16.setWidths(new float[]{100});

        PdfPCell cell30 = new PdfPCell(new Paragraph("是否领取残疾证：  □是    □否  残疾类别：  □视力残疾   □听力残疾   □言语残疾   □智力残疾   □精神残疾   □肢体残疾   □综合残疾\n\n" +
                "                       残疾证编号：                    发证日期：                    发证机关：  \n", font7));
        cell30.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell30.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell30.setPaddingLeft(5);
        cell30.setFixedHeight(27);
        table16.addCell(cell30);

        //第17行 监护人信息
        PdfPCell cell31 = new PdfPCell(new Paragraph("(二)监护人信息", font6));
        cell31.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell31.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell31.setBackgroundColor(BaseColor.GRAY);
        cell31.setPaddingLeft(5);
        cell31.setFixedHeight(22);
        table16.addCell(cell31);

        document.add(table16);

        //第18-23行 第17个表格 监护人
        PdfPTable table17 = new PdfPTable(2);
        table17.setWidthPercentage(100f);
        table17.setWidths(new float[]{3, 97});

        PdfPCell cell32 = new PdfPCell(new Paragraph("监 \n\n\n护 \n\n\n人 ", font7));
        cell32.setHorizontalAlignment(Element.ALIGN_CENTER); //水平对其方式
        cell32.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell32.setPaddingLeft(5);
        cell32.setFixedHeight(141);
        cell32.setRowspan(6);
        table17.addCell(cell32);

        //内部表格第一行
        PdfPCell cell33 = new PdfPCell();
        cell33.addElement(innerTable1());
        cell33.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell33.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell33.setPadding(0);                              //表格间距
        cell33.setFixedHeight(20);
        table17.addCell(cell33);
        //内部表格第2行
        PdfPCell cell34 = new PdfPCell();
        cell34.addElement(innerTable2());
        cell34.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell34.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell34.setPadding(0);                              //表格间距
        cell34.setFixedHeight(27);
        table17.addCell(cell34);
        //内部表格第3行
        PdfPCell cell35 = new PdfPCell();
        cell35.addElement(innerTable3());
        cell35.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell35.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell35.setPadding(0);                              //表格间距
        cell35.setFixedHeight(27);
        table17.addCell(cell35);
        //内部表格第4行
        PdfPCell cell36 = new PdfPCell();
        cell36.addElement(innerTable4());
        cell36.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell36.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell36.setPadding(0);                              //表格间距
        cell36.setFixedHeight(27);
        table17.addCell(cell36);
        //内部表格第5行
        PdfPCell cell37 = new PdfPCell();
        cell37.addElement(innerTable5());
        cell37.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell37.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell37.setPadding(0);                              //表格间距
        cell37.setFixedHeight(20);
        table17.addCell(cell37);
        //内部表格第6行
        PdfPCell cell38 = new PdfPCell();
        cell38.addElement(innerTable6());
        cell38.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell38.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell38.setPadding(0);                              //表格间距
        cell38.setFixedHeight(20);
        table17.addCell(cell38);

        document.add(table17);

        //第24行 (三)入园依据（幼儿园填写）
        PdfPTable table18 = new PdfPTable(2);
        table18.setWidthPercentage(100f);
        table18.setWidths(new int[]{10, 90});

        PdfPCell cell39 = new PdfPCell(new Paragraph("(三)入园依据（幼儿园填写）", font6));
        cell39.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell39.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell39.setPadding(5);
        cell39.setBackgroundColor(BaseColor.GRAY);
        cell39.setColspan(2);
        cell39.setFixedHeight(22);
        table18.addCell(cell39);

        PdfPCell cell40 = new PdfPCell(new Paragraph("普通房产", font7));
        cell40.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell40.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell40.setPadding(5);
        cell40.setFixedHeight(20);
        table18.addCell(cell40);

        PdfPCell cell41 = new PdfPCell(new Paragraph("□本地段户籍    □本区户籍    □本市外区县户籍    □居住证标准积分    □居住证    □双证    □港澳台    □外籍", font7));
        cell41.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell41.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell41.setPadding(5);
        cell41.setFixedHeight(20);
        table18.addCell(cell41);

        PdfPCell cell42 = new PdfPCell(new Paragraph("经适房： ", font7));
        cell42.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell42.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell42.setPadding(5);
        cell42.setFixedHeight(20);
        table18.addCell(cell42);

        PdfPCell cell43 = new PdfPCell(new Paragraph("□本地段户籍    □本区户籍    □本市外区县户籍", font7));
        cell43.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell43.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell43.setPadding(5);
        cell43.setFixedHeight(20);
        table18.addCell(cell43);

        PdfPCell cell44 = new PdfPCell(new Paragraph("廉租房：", font7));
        cell44.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell44.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell44.setPadding(5);
        cell44.setFixedHeight(20);
        table18.addCell(cell44);

        PdfPCell cell45 = new PdfPCell(new Paragraph("□本地段户籍    □本区户籍    □本市外区县户籍", font7));
        cell45.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell45.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell45.setPadding(5);
        cell45.setFixedHeight(20);
        table18.addCell(cell45);

        PdfPCell cell46 = new PdfPCell(new Paragraph("动迁：", font7));
        cell46.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell46.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell46.setPadding(5);
        cell46.setFixedHeight(20);
        table18.addCell(cell46);

        PdfPCell cell47 = new PdfPCell(new Paragraph("□本地段户籍    □本区户籍    □本市外区县户籍", font7));
        cell47.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell47.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell47.setPadding(5);
        cell47.setFixedHeight(20);
        table18.addCell(cell47);

        PdfPCell cell48 = new PdfPCell(new Paragraph("合法居住证明：", font7));
        cell48.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell48.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell48.setPadding(5);
        cell48.setFixedHeight(20);
        table18.addCell(cell48);

        PdfPCell cell49 = new PdfPCell(new Paragraph("□本地段户籍    □本区户籍    □本市外区县户籍    □居住证标准积分    □居住证    □双证    □港澳台    □外籍", font7));
        cell49.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell49.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell49.setPadding(5);
        cell49.setFixedHeight(20);
        table18.addCell(cell49);

        PdfPCell cell50 = new PdfPCell(new Paragraph("*生源情况：     □地段生   □非地段生", font7));
        cell50.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell50.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell50.setPadding(5);
        cell50.setColspan(2);
        cell50.setFixedHeight(20);
        table18.addCell(cell50);

        document.add(table18);
    }

    //内嵌表格 第一个 监护人信息
    private PdfPTable innerTable1() throws DocumentException {
        PdfPTable table = new PdfPTable(4);
        table.setWidthPercentage(100f);
        table.setWidths(new int[]{12, 15, 53, 20});

        PdfPCell cell = new PdfPCell(new Paragraph("*姓名：", font7));
        cell.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell.setPaddingLeft(5);
        cell.setFixedHeight(20);
        table.addCell(cell);

        PdfPCell cell1 = new PdfPCell(new Paragraph("*性别: □男 □女", font7));
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell1.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell1.setPaddingLeft(5);
        cell1.setFixedHeight(20);
        table.addCell(cell1);

        PdfPCell cell2 = new PdfPCell(new Paragraph("*关系： □父/母  □祖父母/外祖父母  □兄弟姐妹  □其他亲属  □非亲属", font7));
        cell2.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell2.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell2.setPaddingLeft(5);
        cell2.setFixedHeight(20);
        table.addCell(cell2);

        PdfPCell cell3 = new PdfPCell(new Paragraph("*联系电话:", font7));
        cell3.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell3.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell3.setPaddingLeft(5);
        cell3.setFixedHeight(20);
        table.addCell(cell3);
        return table;
    }

    //内嵌表格 第二个 监护人信息
    private PdfPTable innerTable2() throws DocumentException {
        PdfPTable table = new PdfPTable(2);
        table.setWidthPercentage(100f);
        table.setWidths(new int[]{70, 30});

        PdfPCell cell1 = new PdfPCell(new Paragraph("*身份证件类型：□居民身份证              □香港特区身份证明  □澳门特区身份证明\n\n" +
                "               □台湾居民来往大陆通行证  □军官证  □士官证  □护照     □其他", font7));
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell1.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell1.setPaddingLeft(5);
        cell1.setFixedHeight(27);
        table.addCell(cell1);

        PdfPCell cell2 = new PdfPCell(new Paragraph("*身份证件号码： ", font7));
        cell2.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell2.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell2.setPaddingLeft(5);
        cell2.setFixedHeight(27);
        table.addCell(cell2);
        return table;
    }

    //内嵌表格 第3个 监护人信息
    private PdfPTable innerTable3() throws DocumentException {
        PdfPTable table = new PdfPTable(3);
        table.setWidthPercentage(100f);
        table.setWidths(new int[]{30, 40, 30});

        PdfPCell cell = new PdfPCell(new Paragraph("户口信息：______省/市______市/区/县", font7));
        cell.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell.setPaddingLeft(5);
        cell.setFixedHeight(27);
        table.addCell(cell);

        PdfPCell cell1 = new PdfPCell(new Paragraph("学历： □博士  □研究生  □大本  □大专 \n\n" +
                "       □中专  □高中    □初中  □小学 □其他", font7));
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell1.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell1.setPaddingLeft(5);
        cell1.setFixedHeight(27);
        table.addCell(cell1);

        PdfPCell cell2 = new PdfPCell(new Paragraph("工作单位：", font7));
        cell2.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell2.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell2.setPaddingLeft(5);
        cell2.setFixedHeight(27);
        table.addCell(cell2);

        return table;
    }

    //内嵌表格 第4个 监护人信息
    private PdfPTable innerTable4() throws DocumentException {
        PdfPTable table = new PdfPTable(3);
        table.setWidthPercentage(100f);
        table.setWidths(new int[]{50, 25, 25});

        PdfPCell cell = new PdfPCell(new Paragraph("上海居住证类型：□上海市临时居住证       □上海市居住证  \n\n" +
                "               □上海市海外人才居住证   □其他", font7));
        cell.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell.setPaddingLeft(5);
        cell.setFixedHeight(27);
        table.addCell(cell);

        PdfPCell cell1 = new PdfPCell(new Paragraph("居住证号码：", font7));
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell1.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell1.setPaddingLeft(5);
        cell1.setFixedHeight(27);
        table.addCell(cell1);

        PdfPCell cell2 = new PdfPCell(new Paragraph("居住证有效期：", font7));
        cell2.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell2.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell2.setPaddingLeft(5);
        cell2.setFixedHeight(27);
        table.addCell(cell2);

        return table;
    }

    //内嵌表格 第5个 监护人信息
    private PdfPTable innerTable5() throws DocumentException {
        PdfPTable table = new PdfPTable(2);
        table.setWidthPercentage(100f);
        table.setWidths(new int[]{50, 50});

        PdfPCell cell = new PdfPCell(new Paragraph("上海市居住证是否积分达到标准分值：  □是    □否", font7));
        cell.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell.setPaddingLeft(5);
        cell.setFixedHeight(20);
        table.addCell(cell);

        PdfPCell cell1 = new PdfPCell(new Paragraph("上海市临时居住证首次办理时间： ", font7));
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell1.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell1.setPaddingLeft(5);
        cell1.setFixedHeight(20);
        table.addCell(cell1);

        return table;
    }

    //内嵌表格 第6个 监护人信息
    private PdfPTable innerTable6() throws DocumentException {
        PdfPTable table = new PdfPTable(1);
        table.setWidthPercentage(100f);
        table.setWidths(new int[]{100});

        PdfPCell cell = new PdfPCell(new Paragraph("是否持有灵活就业登记证明： □是   □否         就业失业登记证编号：                行业类别：           登记次数：   ", font7));
        cell.setHorizontalAlignment(Element.ALIGN_LEFT); //水平对其方式
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直对其方式
        cell.setPaddingLeft(5);
        cell.setFixedHeight(20);
        table.addCell(cell);

        return table;
    }

    //证件类型
    private String getZjlxPdf(String sfzjlx) {
        String sfzjlxPdf = "□居民身份证                 □香港特区身份证明        □澳门特区身份证明\n□台湾居民来往大陆通行证     □护照                    □其他";
        if("1".equals(sfzjlx)){
            sfzjlxPdf = "√居民身份证                 □香港特区身份证明        □澳门特区身份证明\n□台湾居民来往大陆通行证     □护照                    □其他";
        }
        if("6".equals(sfzjlx)){
            sfzjlxPdf = "□居民身份证                 √香港特区身份证明        □澳门特区身份证明\n□台湾居民来往大陆通行证     □护照                    □其他";
        }
        if("7".equals(sfzjlx)){
            sfzjlxPdf = "□居民身份证                 □香港特区身份证明        √澳门特区身份证明\n□台湾居民来往大陆通行证     □护照                    □其他";
        }
        if("8".equals(sfzjlx)){
            sfzjlxPdf = "□居民身份证                 □香港特区身份证明        □澳门特区身份证明\n√台湾居民来往大陆通行证     □护照                    □其他";
        }
        if("A".equals(sfzjlx)){
            sfzjlxPdf = "□居民身份证                 □香港特区身份证明        □澳门特区身份证明\n□台湾居民来往大陆通行证     √护照                    □其他";
        }
        if("C".equals(sfzjlx)){
            sfzjlxPdf = "□居民身份证                 □香港特区身份证明        □澳门特区身份证明\n□台湾居民来往大陆通行证     □护照                    √其他";
        }
        return sfzjlxPdf;
    }
}
